package gov.goias.recad.dominio;

import java.util.Date;

//import javax.persistence.Column;
//import javax.persistence.EnumType;
//import javax.persistence.Enumerated;
//import javax.persistence.Id;
//import javax.persistence.JoinColumn;
//import javax.persistence.ManyToOne;
//import javax.persistence.Temporal;
//import javax.persistence.TemporalType;

//@Entity
public class CadastroServidor extends Entidade<Long>{
	private static final long serialVersionUID = 1L;

	//@Id
	//@Column(name = "pfis_iden")
	private Long id;
	
	//@Column(name = "pfis_numr_cpf")
	private Long cpf;
	
	//@Column(name = "pfis_nome")
	private String nome = "";

	//@Enumerated(EnumType.STRING)
	//@Column(name = "pfis_sigl_sexo" , columnDefinition = "char(1)")
	private Sexo sexo;
	
	//@Enumerated(EnumType.STRING)
	//@Column(name = "pfis_tipo_estado_civil" , columnDefinition = "char(1)")
	private EstadoCivil estadoCivil;
	
	//@Column(name = "pfis_nome_mae")
	private String nomeMae;
	
	//@Column(name = "pfis_nome_pai")
	private String nomePai;
	
	//@Enumerated(EnumType.STRING)
	//@Column(name = "PFIS_TIPO_SANGUINEO" , columnDefinition = "char(2)")
	private TipoSanguineo sangueTipo;	
	
	//@Enumerated(EnumType.STRING)	
	//@Column(name = "PFIS_INDI_DOADOR" , columnDefinition = "char(1)")	
	private boolean   sangueDoador;	
	
	//@Enumerated(EnumType.ORDINAL)
	//@Column(name = "SERV_CODG_COR_RACA_RAIS")
	private Raca raca;
	
	//@ManyToOne
	//@JoinColumn(name = "pfis_gins_codg")
	private GrauInstrucao grauInstrucao; //TODO IMPLEMENTAR NA TELA

	//@Temporal(TemporalType.DATE)
	//@Column(name = "PFIS_DATA_NASC")
	private Date nascimentoData;

	//@ManyToOne
	//@JoinColumn(name = "PFIS_PAIS_CODG_NASCIMENTO")
	private Pais nascimentoPais;
	
	private Uf  nascimentoUf;
	
	//@ManyToOne
	//@JoinColumn(name = "PFIS_MUNI_CODG_NATURALIDADE")
	private Municipio nascimentoMunicipio;

	//@ManyToOne
	//@JoinColumn(name = "PFIS_PAIS_CODG_NACIONALIDADE")
	private Pais nacionalidadePais;

	//@Column(name = "PFIS_NUMR_ANO_CHEGADA_BRASIL")
	private Integer nacionalidadeAnoChegada;	
	
	private Date naturalizacaoData;
	
	//@Column(name = "PFIS_NUMR_RG")
	private String rg;
	
	//@Column(name = "PFIS_SIGL_ORGAO_RG")
	private String rgOrgaoEmissor;
	
	//@Column(name = "PFIS_DATA_EXPED_RG")	
	private Date rgDataEmissao;
	
	//@ManyToOne
	//@JoinColumn(name = "PFIS_UFED_SIGL_RG")	
	private Uf rgUf;
	
	//@Column(name = "PFIC_NUMR_TIT_ELEITOR")
	private String tituloNumero;
	
	//@Column(name =  "PFIC_INFO_ZONA_TIT_ELEITOR")
	private String tituloZona;
	
	//@Column(name =  "PFIC_INFO_SECAO_TIT_ELEITOR")
	private String tituloSecao;
	
	//@Temporal(TemporalType.DATE)
	//@Column(name =  "PFIC_DATA_EXPED_TIT_ELEITOR")	
	private Date tituloDataExpedicao;
	
	private Uf       tituloUf;
	
	//@ManyToOne
	//@JoinColumn(name = "PFIC_MUNI_CODG_TIT_ELEITOR")
	private Municipio tituloMunicipio;
	
	//@Column(name = "PFIC_NUMR_CART_MOTORISTA")
	private Integer cnhNumero;
	
	//@Enumerated(EnumType.STRING)
	//@Column(name = "PFIC_TIPO_CATEG_CART_MOTORISTA", columnDefinition = "char(3)")
	private CnhCategoria cnhCategoria;
	
	//@ManyToOne
	//@JoinColumn(name = "PFIC_UFED_SIGL_CART_MOTORISTA")
	private Uf cnhUf;
	
	//@Temporal(TemporalType.DATE)
	//@Column(name = "PFIC_DATA_EXPED_CART_MOTORISTA")
	private Date cnhDataExpedicao;
	
	//@Temporal(TemporalType.DATE)
	//@Column(name = "PFIC_DATA_VALID_CART_MOTORISTA")
	private Date cnhDataValidade;
	
	//@Column(name = "PFIC_INFO_CARTORIO_CERT_CASAM")
	private String casamentoCartorio;
	
	//@ManyToOne
	//@JoinColumn(name = "PFIC_PAIS_CODG_CASAM")
	private Pais casamentoPais;
	
	private Uf casamentoUf;
	
	//@ManyToOne
	//@JoinColumn(name = "PFIC_MUNI_CODG_CASAM")
	private Municipio casamentoMunicipio;
	
	//@Column(name = "PFIC_DESC_ENDR_EXTE_CERT_CASAM")
	private String casamentoLocalEquivalente;
	
	//@Column(name = "PFIC_NUMR_MATRICULA_CERT_CASAM")
	private Integer casamentoMatricula;
	
	//@Column(name = "PFIC_NUMR_CERT_CASAM")
	private String casamentoNumeroCertidao;
	
	//@Column(name = "PFIC_INFO_LIVRO_CERT_CASAM")
	private String casamentoNumeroLivro;
	
	//@Column(name = "PFIC_INFO_FOLHA_CERT_CASAM")
	private String casamentoNumeroFolha;
		
	//@Temporal(TemporalType.DATE)
	//@Column(name =  "PFIC_DATA_CASAM")
	private Date casamentoDataEmissao;
	
//	@OneToMany(mappedBy = "servidor")
//	private List<Graduacao> graduacoes;
	
	private Integer enderecoCep;
	
	private String enderecoUf;
	
	private String enderecoMunicipio;
	
	private String enderecoBairro;
	
	private String enderecoLogradouro;
	
	private String enderecoNumero;
	
	private String enderecoQuadra;
	
	private String enderecoLote;
	
	private String enderecoComplemento;

	private String contatoEmail;
	
	private String contatoCelular;
	
	private String contatoResidencial;
	
	private String contatoComercial;
	
	private String contatoComercialRamal;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public Long getCpf() {
		return cpf;
	}

	public void setCpf(Long cpf) {
		this.cpf = cpf;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public Sexo getSexo() {
		return sexo;
	}

	public void setSexo(Sexo sexo) {
		this.sexo = sexo;
	}

	public EstadoCivil getEstadoCivil() {
		return estadoCivil;
	}

	public void setEstadoCivil(EstadoCivil estadoCivil) {
		this.estadoCivil = estadoCivil;
	}

	public String getNomeMae() {
		return nomeMae;
	}

	public void setNomeMae(String nomeMae) {
		this.nomeMae = nomeMae;
	}

	public String getNomePai() {
		return nomePai;
	}

	public void setNomePai(String nomePai) {
		this.nomePai = nomePai;
	}

	public TipoSanguineo getSangueTipo() {
		return sangueTipo;
	}

	public void setSangueTipo(TipoSanguineo sangueTipo) {
		this.sangueTipo = sangueTipo;
	}

	public boolean getSangueDoador() {
		return sangueDoador;
	}

	public void setSangueDoador(boolean sangueDoador) {
		this.sangueDoador = sangueDoador;
	}

	public Raca getRaca() {
		return raca;
	}

	public void setRaca(Raca raca) {
		this.raca = raca;
	}

	public GrauInstrucao getGrauInstrucao() {
		return grauInstrucao;
	}

	public void setGrauInstrucao(GrauInstrucao grauInstrucao) {
		this.grauInstrucao = grauInstrucao;
	}

	public Date getNascimentoData() {
		return nascimentoData;
	}

	public void setNascimentoData(Date nascimentoData) {
		this.nascimentoData = nascimentoData;
	}

	public Pais getNascimentoPais() {
		return nascimentoPais;
	}

	public void setNascimentoPais(Pais nascimentoPais) {
		this.nascimentoPais = nascimentoPais;
	}
	
	public Uf getNascimentoUf() {
		return nascimentoUf;
	}
	
	public void setNascimentoUf(Uf nascimentoUf) {
		this.nascimentoUf = nascimentoUf;
	}

	public Municipio getNascimentoMunicipio() {
		return nascimentoMunicipio;
	}

	public void setNascimentoMunicipio(Municipio nascimentoMunicipio) {
		this.nascimentoMunicipio = nascimentoMunicipio;
	}

	public Pais getNacionalidadePais() {
		return nacionalidadePais;
	}

	public void setNacionalidadePais(Pais nacionalidadePais) {
		this.nacionalidadePais = nacionalidadePais;
	}

	public Integer getNacionalidadeAnoChegada() {
		return nacionalidadeAnoChegada;
	}

	public void setNacionalidadeAnoChegada(Integer nacionalidadeAnoChegada) {
		this.nacionalidadeAnoChegada = nacionalidadeAnoChegada;
	}
	
	public Date getNaturalizacaoData() {
		return naturalizacaoData;
	}
	
	public void setNaturalizacaoData(Date naturalizacaoData) {
		this.naturalizacaoData = naturalizacaoData;
	}

	public String getRg() {
		return rg;
	}

	public void setRg(String rg) {
		this.rg = rg;
	}

	public String getRgOrgaoEmissor() {
		return rgOrgaoEmissor;
	}

	public void setRgOrgaoEmissor(String rgOrgaoEmissor) {
		this.rgOrgaoEmissor = rgOrgaoEmissor;
	}

	public Date getRgDataEmissao() {
		return rgDataEmissao;
	}

	public void setRgDataEmissao(Date rgDataEmissao) {
		this.rgDataEmissao = rgDataEmissao;
	}

	public Uf getRgUf() {
		return rgUf;
	}

	public void setRgUf(Uf rgUf) {
		this.rgUf = rgUf;
	}

	public String getTituloNumero() {
		return tituloNumero;
	}

	public void setTituloNumero(String tituloNumero) {
		this.tituloNumero = tituloNumero;
	}

	public String getTituloZona() {
		return tituloZona;
	}

	public void setTituloZona(String tituloZona) {
		this.tituloZona = tituloZona;
	}

	public String getTituloSecao() {
		return tituloSecao;
	}

	public void setTituloSecao(String tituloSecao) {
		this.tituloSecao = tituloSecao;
	}

	public Date getTituloDataExpedicao() {
		return tituloDataExpedicao;
	}

	public void setTituloDataExpedicao(Date tituloDataExpedicao) {
		this.tituloDataExpedicao = tituloDataExpedicao;
	}
	
	public Uf getTituloUf() {
		return tituloUf;
	}
	
	public void setTituloUf(Uf tituloUf) {
		this.tituloUf = tituloUf;
	}

	public Municipio getTituloMunicipio() {
		return tituloMunicipio;
	}

	public void setTituloMunicipio(Municipio tituloMunicipio) {
		this.tituloMunicipio = tituloMunicipio;
	}

	public Integer getCnhNumero() {
		return cnhNumero;
	}

	public void setCnhNumero(Integer cnhNumero) {
		this.cnhNumero = cnhNumero;
	}

	public CnhCategoria getCnhCategoria() {
		return cnhCategoria;
	}

	public void setCnhCategoria(CnhCategoria cnhCategoria) {
		this.cnhCategoria = cnhCategoria;
	}

	public Uf getCnhUf() {
		return cnhUf;
	}

	public void setCnhUf(Uf cnhUf) {
		this.cnhUf = cnhUf;
	}

	public Date getCnhDataExpedicao() {
		return cnhDataExpedicao;
	}

	public void setCnhDataExpedicao(Date cnhDataExpedicao) {
		this.cnhDataExpedicao = cnhDataExpedicao;
	}

	public Date getCnhDataValidade() {
		return cnhDataValidade;
	}

	public void setCnhDataValidade(Date cnhDataValidade) {
		this.cnhDataValidade = cnhDataValidade;
	}

	public String getCasamentoCartorio() {
		return casamentoCartorio;
	}

	public void setCasamentoCartorio(String casamentoCartorio) {
		this.casamentoCartorio = casamentoCartorio;
	}

	public Pais getCasamentoPais() {
		return casamentoPais;
	}

	public void setCasamentoPais(Pais casamentoPais) {
		this.casamentoPais = casamentoPais;
	}

	public Uf getCasamentoUf() {
		return casamentoUf;
	}
	
	public void setCasamentoUf(Uf casamentoUf) {
		this.casamentoUf = casamentoUf;
	}
	
	public Municipio getCasamentoMunicipio() {
		return casamentoMunicipio;
	}

	public void setCasamentoMunicipio(Municipio casamentoMunicipio) {
		this.casamentoMunicipio = casamentoMunicipio;
	}

	public String getCasamentoLocalEquivalente() {
		return casamentoLocalEquivalente;
	}

	public void setCasamentoLocalEquivalente(String casamentoLocalEquivalente) {
		this.casamentoLocalEquivalente = casamentoLocalEquivalente;
	}

	public Integer getCasamentoMatricula() {
		return casamentoMatricula;
	}

	public void setCasamentoMatricula(Integer casamentoMatricula) {
		this.casamentoMatricula = casamentoMatricula;
	}

	public String getCasamentoNumeroCertidao() {
		return casamentoNumeroCertidao;
	}

	public void setCasamentoNumeroCertidao(String casamentoNumeroCertidao) {
		this.casamentoNumeroCertidao = casamentoNumeroCertidao;
	}

	public String getCasamentoNumeroLivro() {
		return casamentoNumeroLivro;
	}

	public void setCasamentoNumeroLivro(String casamentoNumeroLivro) {
		this.casamentoNumeroLivro = casamentoNumeroLivro;
	}

	public String getCasamentoNumeroFolha() {
		return casamentoNumeroFolha;
	}

	public void setCasamentoNumeroFolha(String casamentoNumeroFolha) {
		this.casamentoNumeroFolha = casamentoNumeroFolha;
	}

	public Date getCasamentoDataEmissao() {
		return casamentoDataEmissao;
	}

	public void setCasamentoDataEmissao(Date casamentoDataEmissao) {
		this.casamentoDataEmissao = casamentoDataEmissao;
	}

	public Integer getEnderecoCep() {
		return enderecoCep;
	}

	public void setEnderecoCep(Integer enderecoCep) {
		this.enderecoCep = enderecoCep;
	}

	public String getEnderecoUf() {
		return enderecoUf;
	}

	public void setEnderecoUf(String enderecoUf) {
		this.enderecoUf = enderecoUf;
	}

	public String getEnderecoMunicipio() {
		return enderecoMunicipio;
	}

	public void setEnderecoMunicipio(String enderecoMunicipio) {
		this.enderecoMunicipio = enderecoMunicipio;
	}

	public String getEnderecoBairro() {
		return enderecoBairro;
	}

	public void setEnderecoBairro(String enderecoBairro) {
		this.enderecoBairro = enderecoBairro;
	}

	public String getEnderecoLogradouro() {
		return enderecoLogradouro;
	}

	public void setEnderecoLogradouro(String enderecoLogradouro) {
		this.enderecoLogradouro = enderecoLogradouro;
	}

	public String getEnderecoNumero() {
		return enderecoNumero;
	}

	public void setEnderecoNumero(String enderecoNumero) {
		this.enderecoNumero = enderecoNumero;
	}

	public String getEnderecoQuadra() {
		return enderecoQuadra;
	}

	public void setEnderecoQuadra(String enderecoQuadra) {
		this.enderecoQuadra = enderecoQuadra;
	}

	public String getEnderecoLote() {
		return enderecoLote;
	}

	public void setEnderecoLote(String enderecoLote) {
		this.enderecoLote = enderecoLote;
	}

	public String getEnderecoComplemento() {
		return enderecoComplemento;
	}

	public void setEnderecoComplemento(String enderecoComplemento) {
		this.enderecoComplemento = enderecoComplemento;
	}

	public String getContatoEmail() {
		return contatoEmail;
	}

	public void setContatoEmail(String contatoEmail) {
		this.contatoEmail = contatoEmail;
	}

	public String getContatoCelular() {
		return contatoCelular;
	}

	public void setContatoCelular(String contatoCelular) {
		this.contatoCelular = contatoCelular;
	}

	public String getContatoResidencial() {
		return contatoResidencial;
	}

	public void setContatoResidencial(String contatoResidencial) {
		this.contatoResidencial = contatoResidencial;
	}

	public String getContatoComercial() {
		return contatoComercial;
	}

	public void setContatoComercial(String contatoComercial) {
		this.contatoComercial = contatoComercial;
	}

	public String getContatoComercialRamal() {
		return contatoComercialRamal;
	}

	public void setContatoComercialRamal(String contatoComercialRamal) {
		this.contatoComercialRamal = contatoComercialRamal;
	}
}